When measuring the utilization of I/O resources, prior art offers a variety of solutions and approaches. This invention proposes new methods and means which overcome most of the deficiencies in these prior art solutions.
In order to assess the prior art and to compare it with the proposed invention, the requirements for measuring the activity of an I/O resource are summarized as follows:
Measure the total amount of time in which an I/O resource is busy performing work on behalf of the measuring OS. PA1 Provide this measurement for arbitrary time intervals for which the duration can be a few seconds to several hours. PA1 Allow for arbitrary starting and ending point for any measurement interval. PA1 Provide information which allows the measurement of multiple overlapping intervals of use of a I/O resource that is shared by multiple OSs. For example, while OS A measures the I/O resource activity between 8:00 and 9:00, another OS B should be able to measure the activity of its use the same resource between 8:30 and 9:05. The two OSs must be provided measurements which do not indicate the other OSs use of the shared I/O resource. PA1 The measurements must be accurate within certain user-specified limits. PA1 The overhead at the CEC must be minimal in performing the measurements. PA1 The programming of a measuring program should be simple. PA1 There is no way to associate the state of the channel to a OS for which I/O activity is being carried out by the channel in a multi-OS CEC. PA1 The frequent sampling has a significant overhead in terms of CPU and channel subsystem utilization. PA1 In addition to the sampling activity, the OS needs to frequently translate these statistical samples into data which is useable by a multitude of other programs operating in the OS to make the measurements meaningful. PA1 The precision of such a measurement is questionable if the frequency of sampling is reduced in order to minimize CPU overhead. PA1 Measurement based on sampling is inaccurate as compared to continuous measurement. PA1 The sampling may be biased by various constraints imposed by the design of the system. PA1 Each channel performs precise accumulation of individual busy time for each of the plurality of OSs that share it. PA1 Each channel periodically stores this information in an area available to the I/O subsystem. The frequency of this storing operation is low enough to not cause any noticeable overhead. PA1 When storing the cumulative measurements, the channel processor also stores a time-stamp associated with the measurement value. This time-stamp allows a delayed examination of the measurement value by the OS, to be adjusted to the desired precision, and reflects accurate channel utilization at a recent interval. If these time stamps are not provided, the precision of the measurement can be dramatically affected by the frequency of which measurement data is stored. Infrequent storing allows for low overhead and high inaccuracies. Frequent storing requires high overhead but improves the accuracy. The time stamp allows for both the desired infrequent storing with high accuracy. PA1 The channel subsystem periodically moves the information stored by the channel processors into OS storage. The time stamps are preserved, and thus the delay in this periodic move operation can also be taken into account as presented above.
One existing approach uses statistical techniques for measuring channel utilization is to periodically examine the busy-status of the channel and estimate the total busy time based on statistical techniques. The advantage of statistical techniques is that no special activity counters are required at the channel. The disadvantages are:
Another prior sampling technique is to sample the channel utilization inside the channel itself, estimate the total utilization of the channel, and periodically store the information in memory available to the measuring OS. The advantage of this method is that the OS no longer needs to sample the channel frequently, or to translate results of sampling. The disadvantage is that such a technique cannot be extended to associate each channel activity with its originating OS, and apportion the observed busy time to the respective OS.
A third prior-art technique (presently used in measuring control unit queueing-related activity) maintains counters and accumulators at the channel subsystem, and stores the information only when requested by the OS. The advantage of this method is that CEC overhead is minimized when the measurement information is needed infrequently.
The disadvantage is that obtaining the information for very short intervals implies excessive CPU and channel subsystem overhead due to the frequent execution of the instruction used to request the information from the channel subsystem by the OS and the associated communications required between the CPU and the channel subsystem.
Prior-art device connect time measurement has the channel subsystem accumulate the duration of connect time for each I/O device, and increment a designated storage location at the completion of each I/O operation. The advantage is device-level granularity and high precision. However, the advantage of device level granularity is a disadvantage when total channel utilization measurements are required as it forces all device level measurements to be summed for the devices configured to a channel in order to determine total channel utilization.
Further, the prior art device level channel measurement does not provide individual utilization measurements for each of the plurality of channels to which a device may be configured. That is, the desired information regarding channel utilization cannot be obtained by adding device related information since a plurality of channels may participate in each I/O operation for each device. Further, storing all information from all participating channels at the completion of every I/O operation creates unacceptable overhead to the channel subsystem.
Lastly, none of the prior art I/O resource measurement facilities provide the capability of measuring selective utilization of I/O channel resources shared by separate OSs in a CEC in which I/O channel resources can be dynamically shared among a plurality of OSs.
The following cited applications are background to this application and are assigned to the same assignee as this application: application Ser. No. 07/444,190, filed Nov. 28, 1989, by C. J. Bailey et al, entitled "Method And Apparatus For Dynamically Managing I/O Connectivity" (Docket Number KI989013); application Ser. No. 07/754,813, filed Sep. 4, 1991, by R. Cwiakala et al, entitled "Establishing Synchronization Of Hardware And Software I/O Configuration Definitions" (Docket Number PO991036); application Ser. No. 07/676,603, filed Mar. 28, 1991, by S. M. Benson et al, entitled "Method And Apparatus For Dynamic Changes To System I/O Configuration" (Docket Number PO990026); application Ser. No. 07/755,246, filed Sep. 5, 1991, by J. E. Bostick et al, entitled "Method And Apparatus For Dynamically Changing The Configuration Of A Logically Partitioned Data Processing System" (Docket Number PO991028); and application Ser. No. 07/693,997, filed Mar. 28, 1991, by R. Cwiakala et al, entitled "Dynamically Changing A System I/O Configuration Definition" (Docket Number PO991012) U.S. Pat. No. 5,170,472 which issued on Dec. 8, 1992.